Users of computers today run many applications at the same time. For example, a user may be actively working in a word processing application, while also viewing related information in a spreadsheet application, listening to music through a media player application, staying in touch with others through an email application and an instant messaging application, and so forth. Many of these applications have a changing status over time for which the applications alert the user. For example, an instant message application may alert a user each time one of the user's contacts signs on. As another example, an email application may alert a user each time the application receives a new email message.
Software applications have various ways of alerting a user to events and status changes. For example, applications may display a dialog box, make a beeping sound, or use operating system provided facilities such as a system tray area for displaying icons, displaying a balloon notification, or flashing the application window. Each of these ways of alerting a user seeks to get the user's attention and notify the user that something has happened that may make the user want to transition from whatever activity the user is currently working on to address the event that caused the alert. Application developers design these events to be disruptive and the events may actually begin to annoy or distract the user and affect the user's productivity.
One problem with notifying the user in this way is that applications can overload the user with the quantity and variety of notifications that the user receives. For example, a user may have a large number of status icons in his/her system tray, receive several dialog boxes per hour, and so forth. The quantity of application notifications may lead the user to ignore the notifications, run fewer applications, or become less productive as the user spends more time staying aware of various applications' status and less time performing productive tasks. Another problem is that the user does not know where to focus to get information about the application, because the user may receive information in so many places. For example, an application may have status information in the application UI, in the system tray, on the desktop (such as through a separate dialog box window), and on the taskbar.